package com.storage.client;

import com.storage.FileStorageInfo;

import java.io.InputStream;
import java.util.function.Consumer;

/**
 * 存储客户端
 */
public interface StorageClient {
    /**
     * 获取客户端
     * @return
     */
    String getClient();

    /**
     * 上传文件
     * @param fileStorageInfo
     */
    void upload(FileStorageInfo fileStorageInfo);

    /**
     * 查询文件
     * @param fileStorageInfo
     * @return
     */
    boolean exists(FileStorageInfo fileStorageInfo);

    /**
     * 删除文件
      * @param fileStorageInfo
     * @return
     */
    boolean delete(FileStorageInfo fileStorageInfo);

    /**
     * 文件下载
     * @param fileStorageInfo
     * @param consumer
     */
    void download(FileStorageInfo fileStorageInfo, Consumer<InputStream> consumer);
}
